home *** CD-ROM | disk | FTP | other *** search
/ Amiga News 95 / Amiga News 95.iso / dpat / dpat38 / viewer / sources / display.c next >
Encoding:
C/C++ Source or Header  |  1993-09-30  |  4.7 KB  |  172 lines

  1. /*
  2.  *  Source generated with GadToolsBox V1.4
  3.  *  which is (c) Copyright 1991,92 Jaba Development
  4.  */
  5.  
  6. #include <exec/types.h>
  7. #include <intuition/intuition.h>
  8. #include <intuition/classes.h>
  9. #include <intuition/classusr.h>
  10. #include <intuition/imageclass.h>
  11. #include <intuition/gadgetclass.h>
  12. #include <libraries/gadtools.h>
  13. #include <graphics/displayinfo.h>
  14. #include <graphics/gfxbase.h>
  15. #include <clib/exec_protos.h>
  16. #include <clib/intuition_protos.h>
  17. #include <clib/gadtools_protos.h>
  18. #include <clib/graphics_protos.h>
  19. #include <clib/utility_protos.h>
  20. #include <string.h>
  21.  
  22. #include "Display.h"
  23.  
  24. struct Screen         *Scr = NULL;
  25. APTR                   VisualInfo = NULL;
  26. struct Window         *ILBMViewerWnd = NULL;
  27. struct Gadget         *ILBMViewerGList = NULL;
  28. struct Gadget         *ILBMViewerGadgets[5];
  29. UWORD                  ILBMViewerLeft = 177;
  30. UWORD                  ILBMViewerTop = 78;
  31. UWORD                  ILBMViewerWidth = 327;
  32. UWORD                  ILBMViewerHeight = 91;
  33. UBYTE                 *ILBMViewerWdt = (UBYTE *)"ILBM-Viewer";
  34.  
  35. UBYTE         *FWGadget0Labels[] = {
  36.     (UBYTE *)"Default",
  37.     (UBYTE *)"LoRes",
  38.     (UBYTE *)"HiRes",
  39.     (UBYTE *)"SuperHires",
  40.     NULL };
  41.  
  42. UBYTE         *FHGadget0Labels[] = {
  43.     (UBYTE *)"Default",
  44.     (UBYTE *)"Lace",
  45.     (UBYTE *)"No Lace",
  46.     NULL };
  47.  
  48. struct TextAttr topaz8 = {
  49.     ( STRPTR )"topaz.font", 8, 0x00, 0x00 };
  50.  
  51. UWORD ILBMViewerGTypes[] = {
  52.     BUTTON_KIND,
  53.     STRING_KIND,
  54.     BUTTON_KIND,
  55.     CYCLE_KIND,
  56.     CYCLE_KIND
  57. };
  58.  
  59. struct NewGadget ILBMViewerNGad[] = {
  60.     5, 2, 78, 15, (UBYTE *)"LOAD", NULL, GD_LoadGadget, PLACETEXT_IN ,NULL, NULL,
  61.     88, 2, 226, 15, NULL, NULL, GD_StringGadget, 0 ,NULL, NULL,
  62.     83, 71, 157, 16, (UBYTE *)"SHOW PICTURE", NULL, GD_ShowGadget, PLACETEXT_IN ,NULL, NULL,
  63.     6, 19, 152, 14, NULL, NULL, GD_FWGadget, 0 ,NULL, NULL,
  64.     162, 19, 152, 14, NULL, NULL, GD_FHGadget, 0 ,NULL, NULL
  65. };
  66.  
  67. ULONG ILBMViewerGTags[] = {
  68.     (TAG_DONE),
  69.     (GTST_String), (ULONG)"sys:", (GTST_MaxChars), 256, (TAG_DONE),
  70.     (TAG_DONE),
  71.     (GTCY_Labels), (ULONG)&FWGadget0Labels[ 0 ], (TAG_DONE),
  72.     (GTCY_Labels), (ULONG)&FHGadget0Labels[ 0 ], (TAG_DONE)
  73. };
  74.  
  75. int SetupScreen( void )
  76. {
  77.     if ( ! ( Scr = LockPubScreen( NULL )))
  78.         return( 1L );
  79.  
  80.     if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  81.         return( 2L );
  82.  
  83.     return( 0L );
  84. }
  85.  
  86. void CloseDownScreen( void )
  87. {
  88.     if ( VisualInfo ) {
  89.         FreeVisualInfo( VisualInfo );
  90.         VisualInfo = NULL;
  91.     }
  92.  
  93.     if ( Scr        ) {
  94.         UnlockPubScreen( NULL, Scr );
  95.         Scr = NULL;
  96.     }
  97. }
  98.  
  99. void ILBMViewerRender( void )
  100. {
  101.     UWORD        offx, offy;
  102.  
  103.     offx = ILBMViewerWnd->BorderLeft;
  104.     offy = ILBMViewerWnd->BorderTop;
  105.  
  106.  
  107.     DrawBevelBox( ILBMViewerWnd->RPort, offx + 6, offy + 35, 308, 34, GT_VisualInfo, VisualInfo, TAG_DONE );
  108. }
  109.  
  110. int OpenILBMViewerWindow( void )
  111. {
  112.     struct NewGadget     ng;
  113.     struct Gadget       *g;
  114.     UWORD                lc, tc;
  115.     UWORD                offx = Scr->WBorLeft,offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  116.  
  117.     if ( ! ( g = CreateContext( &ILBMViewerGList )))
  118.         return( 1L );
  119.  
  120.     for( lc = 0, tc = 0; lc < ILBMViewer_CNT; lc++ ) {
  121.  
  122.         CopyMem((char * )&ILBMViewerNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  123.  
  124.         ng.ng_VisualInfo = VisualInfo;
  125.         ng.ng_TextAttr   = &topaz8;
  126.         ng.ng_LeftEdge  += offx;
  127.         ng.ng_TopEdge   += offy;
  128.  
  129.         ILBMViewerGadgets[ lc ] = g = CreateGadgetA((ULONG)ILBMViewerGTypes[ lc ], g, &ng, ( struct TagItem * )&ILBMViewerGTags[ tc ] );
  130.  
  131.         while( ILBMViewerGTags[ tc ] ) tc += 2;
  132.         tc++;
  133.  
  134.         if ( NOT g )
  135.         return( 2L );
  136.     }
  137.  
  138.     if ( ! ( ILBMViewerWnd = OpenWindowTags( NULL,
  139.                     WA_Left,          ILBMViewerLeft,
  140.                     WA_Top,           ILBMViewerTop,
  141.                     WA_Width,         ILBMViewerWidth,
  142.                     WA_Height,        ILBMViewerHeight + offy,
  143.                     WA_IDCMP,         BUTTONIDCMP|STRINGIDCMP|CYCLEIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  144.                     WA_Flags,         WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
  145.                     WA_Gadgets,       ILBMViewerGList,
  146.                     WA_Title,         ILBMViewerWdt,
  147.                     WA_ScreenTitle,   "ILBM-Viewer (Rodrigo REYES 1993)",
  148.                     WA_PubScreen,     Scr,
  149.                     TAG_DONE )))
  150.         return( 4L );
  151.  
  152.     GT_RefreshWindow( ILBMViewerWnd, NULL );
  153.  
  154.     ILBMViewerRender();
  155.  
  156.     return( 0L );
  157. }
  158.  
  159. void CloseILBMViewerWindow( void )
  160. {
  161.     if ( ILBMViewerWnd        ) {
  162.         CloseWindow( ILBMViewerWnd );
  163.         ILBMViewerWnd = NULL;
  164.     }
  165.  
  166.     if ( ILBMViewerGList      ) {
  167.         FreeGadgets( ILBMViewerGList );
  168.         ILBMViewerGList = NULL;
  169.     }
  170. }
  171.  
  172.